import { VitePWA } from 'vite-plugin-pwa';
import { PluginOption } from 'vite';
export function setupVitePwa(): PluginOption {
	return VitePWA({
		registerType   : 'autoUpdate',
		includeAssets  : ['favicon.ico'],
		manifest       : {
			start_url   : '.',
			name        : 'GrayFaith管理系统',
			short_name  : 'GF管理系统',
			theme_color : '#252932',
			icons       : [
				{
					src   : '/favicon-16.webp',
					sizes : '16x16',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-32.webp',
					sizes : '32x32',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-64.webp',
					sizes : '64x64',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-128.webp',
					sizes : '128x128',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-256.webp',
					sizes : '256x256',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-512.webp',
					sizes : '512x512',
					type  : 'image/webp'
				},
				{
					src   : '/favicon-512.png',
					sizes : '512x512',
					type  : 'image/png'
				},
				{
					src     : '/favicon-512.png',
					sizes   : '512x512',
					type    : 'image/png',
					purpose : 'any maskable'
				},
				{
					src     : '/favicon-512.webp',
					sizes   : '512x512',
					type    : 'image/webp',
					purpose : 'any maskable'
				}
			]
		},
		workbox        : {
			// 自定义缓存名称
			cacheId : 'vite-pwa-cache',
			// 忽略html后面的参数，缓存有参数的html
			ignoreURLParametersMatching : [/*/.*!/*/],
			// 增加一些文件的缓存
			globPatterns : ['**/*.{js,css,html,png,jpg,jpeg,gif,svg,ico,woff,woff2,ttf,eot}'],
			// 不设置回退url，依照实际情况配置
			navigateFallback : null
		},
		selfDestroying : true
	});
}